package com.hspedu.annotation_;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * @Author Stringzhua
 * @Date 2024/3/7 13:20
 * description:
 */
public class Override_ {
    public static void main(String[] args) {
        new Son().fly();
    }
}

class Father{
    public void fly(){
        System.out.println("Father fly()...");
    }
}
class Son extends Father{
    //1.@Override 注解放在fly方法上,表示子类的fly方法时重写了父类的fly方法
    //2.这里没有写@Override,还是重写父类的fly方法
    //3.如果你写了@Override注解,编译器就会去检查该方法是否真的重写了父类的方法,
    // 如果的确重写了则编译通过,如果没有重写则编译不通过
    //4.看@Override的定义
    //如果发现 @interface 表示一个注解类
      /*
    @Target(ElementType.METHOD)
    @Retention(RetentionPolicy.SOURCE)
    public @interface Override {
    }
     */
    @Override//说明
    public void fly() {
        System.out.println("Son fly()...");
    }
//    @Override//Method does not override method from its superclass
//    public void say(){}
}
